﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DMC.Database;
using DMC.GIS.Common;
using MapInfo.Data;
using MapInfo.Engine;
using MapInfo.Geometry;
using MapInfo.Styles;
using MapInfo.Tools;
using MapInfo.Windows.Controls;
using MapInfo.Data.Find;
using MapInfo.Text;
using MapInfo.Mapping;

namespace prjLichSuHoSo_ThuaDat
{
    public partial class ctrLichSuHoSo_ThuaDat : UserControl
    {
        public ctrLichSuHoSo_ThuaDat()
        {
            InitializeComponent();
        }
        DataTable dtGetThuaDatLS = new DataTable();
        DataTable dtGetNgayBienDongLS = new DataTable();
        DataTable dtKQ = new DataTable();
        DataTable dtGetThongTinHoSoLS = new DataTable();

        private string strConnection = "";// Khai báo biến nhận chuỗi kết nối Database
        private string strError = "";  /* Khai báo biến kiểm tra lỗi */
        private string strMaDangKyBienDong = "";
        private string strMaHoSoCapGCN = "";
        private string strMaThuaDat = "";
        private string strMaDonViHanhChinh = "";
        private string strMaThuaDatLS = "";
        private string strNgayBienDong = "";
        private string strToBanDo = "";
        private string strSoThua = "";
        //private string strServerName = "";
        private bool isNodeGoc = false;
        private string strTenBangBanDo = "";
        private ArrayList arrMaThuaDatLienQuan = new ArrayList();
        private string strMaThuaDatHienTai = "";


        //Khai báo thuộc tính nhận chuỗi kết nối Database
        public string Connection
        {
            set { strConnection = value; }
        }
        //Khai báo thuộc tính đọc lỗi
        public string Err
        {
            get { return strError; }
        }
        //Khai bao thuoc tinh Ten ban do       

        public string TenBangBanDo
        {
            get { return strTenBangBanDo; }
            set { strTenBangBanDo = value; }
        }
        //Khai báo Tờ bản đồ
        public string ToBanDo
        {
            get
            {
                return strToBanDo;
            }
            set
            {
                strToBanDo = value;
            }
        }
        //Khai báo Số thửa
        public string SoThua
        {
            get
            {
                return strSoThua;
            }
            set
            {
                strSoThua = value;
            }
        }
        //Khai báo MaThuaDat
        public string MaThuaDat
        {
            get
            {
                return strMaThuaDat;
            }
            set
            {
                strMaThuaDat = value;
            }
        }
        //Khai báo MaDonViHanhChinh
        public string MaDonViHanhChinh
        {
            get
            {
                return strMaDonViHanhChinh;
            }
            set
            {
                strMaDonViHanhChinh = value;
            }
        }
        //Khai báo MaDonViHanhChinh
        public string MaThuaDatLS
        {
            get
            {
                return strMaThuaDatLS;
            }
            set
            {
                strMaThuaDatLS = value;
            }
        }
        //Khai báo NgayBienDong
        public string NgayBienDong
        {
            get
            {
                return strNgayBienDong;
            }
            set
            {
                strNgayBienDong = value;
            }
        }
        //Khai bao thuoc tinh ung voi bien shFlag
        public string MaDangKyBienDong
        {
            get { return strMaDangKyBienDong; }
            set { strMaDangKyBienDong = value; }
        }
        //Khai bao thuoc tinh ung voi bien 
        public string MaHoSoCapGCN
        {
            get { return strMaHoSoCapGCN; }
            set { strMaHoSoCapGCN = value; }
        }

        /* Lấy tiền tố Tên Bảng dữ liệu theo MaDonViHanhChinh */
        public void GetTienToTenBang(ref string strTienToTenBang)
        {
            try
            {
                /* Khai báo và khởi tạo lớp thông tin thửa đất LS */
                clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
                /* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
                ThongTinThuaDatLS.Connection = strConnection;
                /* Gán giá cho biến Mã đơn vị hành chính */
                ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;
                ThongTinThuaDatLS.MaThuaDat = strMaThuaDat;

                //DataTable dt=new DataTable();
                string kq = "";
                ThongTinThuaDatLS.Execute("spGetTienToTenBangByDVHC", ref kq);
                /* Gọi phương thức hiển thị dữ liệu . Nếu nhận dữ liệu thành công thì hiển thị lên Grid */
                if ((kq != null) && (kq != ""))
                {
                    strTienToTenBang = kq;
                }
                else
                {
                    strTienToTenBang = "";
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(this, " Lỗi " + System.Environment.NewLine + " Lấy tiền tố tên bảng Lịch sử " + " Lỗi: " + System.Environment.NewLine
                       + strError, "DMCLand", MessageBoxButtons.OK);
            }
        }
        public void ShowDataTreeView()
        {
            try
            {
                clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
                /* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
                ThongTinThuaDatLS.Connection = strConnection;
                ThongTinThuaDatLS.MaThuaDat = strMaThuaDat;
                /* Gán giá cho biến Mã đơn vị hành chính */
                ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;
                /* Gán giá cho biến Mã thửa đất lịch sử*/
                ThongTinThuaDatLS.MaThuaDatLS = strMaThuaDatLS;
                /* Khởi tạo giá trị cho biến dtDangKyBienDong */
                dtGetThuaDatLS.Clear();
                string kq = "trt";
                string[] strMa = { "TD00003807", "TD00003776", "TD00003801", "TD00003792", "TD00003783" };
                for (int i = 0; i < 1; i++)
                {
                    kq = strMa[0];
                    ThongTinThuaDatLS.MaThuaDat = kq;
                    //TreeNode t = new TreeNode(kq);
                    ////t.Tag = "So thu" + i.ToString();
                    //tvCayLSThuaDat.Nodes.Add(t);
                    string strKq = strMa[0];
                    while (kq != "")
                    {
                        ThongTinThuaDatLS.Execute("spGetThuaDatLSNew", ref kq);
                        /* Hiển thị dữ liệu lên Grid */
                        //this.ctrlGridView1.DataSource = dtGetThuaDatLS;
                        if (kq != "")
                        {
                            /* Thiết đặt giao diện hiển thị Grid */
                            //this.FormatGridContruction();
                            //this.textBox1.Text = kq;
                            //TreeNode t1 = new TreeNode(kq);
                            //t1.Name=kq;
                            ////t.Tag = "So thu" + i.ToString();
                            //tvCayLSThuaDat.Nodes.Add(t1);
                            //tvCayLSThuaDat.Nodes[kq].Nodes.Add(t);
                            strKq += kq + "_";
                        }
                        ThongTinThuaDatLS.MaThuaDat = kq;
                    }
                    MessageBox.Show(strKq);
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(this, " Xem lịch sử Hồ sơ " + System.Environment.NewLine + " Hiển thị dữ liệu " + " Lỗi: " + System.Environment.NewLine
                       + strError, "DMCLand", MessageBoxButtons.OK);
            }
            ///* Thiết lập trạng thái chức năng */
            // this.TrangThaiChucNang(false, false);
            ///* Thiết lập trạng thái cập nhật */
            // this.TrangThaiCapNhat(false);
        }
        public void LoadNgayBienDongToiTreeView()
        {
            try
            {
                clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
                /* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
                ThongTinThuaDatLS.Connection = strConnection;
                ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;
                /* Gán giá cho biến Mã thửa đất lịch sử*/
                dtGetNgayBienDongLS.Clear();
                /* Gọi phương thức hiển thị dữ liệu . Nếu nhận dữ liệu thành công thì hiển thị lên TreeView */
                if (ThongTinThuaDatLS.GetAllNgayBienDong(ref dtGetNgayBienDongLS) == "")
                {
                    /* Hiển thị dữ liệu lên TreeView */
                    if (dtGetNgayBienDongLS.Rows.Count > 0)
                    {
                        for (int i = 0; i < dtGetNgayBienDongLS.Rows.Count; i++)
                        {
                            TreeNode t1 = new TreeNode(dtGetNgayBienDongLS.Rows[i][0].ToString());
                            //t1.Name = kq;
                            //t.Tag = "So thu" + i.ToString();
                            tvCayLSThuaDat.Nodes.Add(t1);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(this, " Xem lịch sử Hồ sơ " + System.Environment.NewLine + " Hiển thị dữ liệu " + " Lỗi: " + System.Environment.NewLine
                       + strError, "DMCLand", MessageBoxButtons.OK);
            }
        }
        //Lấy các Mã thửa đất theo ngày biến động và add vào Node tương ứng trong TreeView
        public void LoadMaThuaDatByNgayBienDong(TreeNode nodeParent, string strNgay)
        {
            try
            {
                clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
                /* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
                ThongTinThuaDatLS.Connection = strConnection;
                ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;
                /* Gán giá trị cho biến Ngày biến động thửa đất lịch sử*/
                ThongTinThuaDatLS.NgayBienDong = strNgay;
                ThongTinThuaDatLS.MaThuaDat = strMaThuaDat;

                dtGetThuaDatLS.Clear();
                string kq = "trt";
                /* Gọi phương thức hiển thị dữ liệu . Nếu nhận dữ liệu thành công thì hiển thị lên TreeView */
                if (ThongTinThuaDatLS.GetMaThuaDatByNgayBienDong(ref dtGetThuaDatLS) == "")
                {
                    /* Hiển thị dữ liệu lên TreeView */
                    if (dtGetThuaDatLS.Rows.Count > 0)
                    {
                        for (int i = 0; i < dtGetThuaDatLS.Rows.Count; i++)
                        {
                            kq = dtGetThuaDatLS.Rows[i]["MaSoThuaDat"].ToString();
                            ThongTinThuaDatLS.MaThuaDat = kq;
                            //TreeNode t = new TreeNode(kq);
                            ////t.Tag = "So thu" + i.ToString();
                            //tvCayLSThuaDat.Nodes.Add(t);
                            string strKq = dtGetThuaDatLS.Rows[i]["MaSoThuaDat"].ToString() + '_';
                            string strTextNode = dtGetThuaDatLS.Rows[i]["ToBanDo"].ToString() + "-" + dtGetThuaDatLS.Rows[i]["SoThua"].ToString() + '_';
                            while (kq != "")
                            {
                                dtKQ.Clear();
                                //ThongTinThuaDatLS.Execute("spGetThuaDatLSNew", ref kq);    
                                ThongTinThuaDatLS.GetThongTinThuaDatByNgayBienDong(ref dtKQ);
                                if (dtKQ.Rows.Count > 0)
                                {
                                    kq = dtKQ.Rows[0]["MaSoThuaDat"].ToString();
                                }
                                else kq = "";
                                if (kq != "")
                                {
                                    //TreeNode t1 = new TreeNode(kq);
                                    //t1.Name=kq;
                                    ////t.Tag = "So thu" + i.ToString();
                                    //tvCayLSThuaDat.Nodes.Add(t1);
                                    //tvCayLSThuaDat.Nodes[kq].Nodes.Add(t);                                    
                                    strKq += kq + "_";
                                    strTextNode += dtKQ.Rows[0]["ToBanDo"].ToString() + "-" + dtKQ.Rows[0]["SoThua"].ToString() + "_";
                                    //TreeNode t = AddChildNode(nodeParent, kq);
                                    if (kq == ThongTinThuaDatLS.MaThuaDat) break;
                                }
                                ThongTinThuaDatLS.MaThuaDat = kq;
                            }
                            string[] arrMaThuaDatTextNode = strTextNode.Split('_');
                            string[] arrMaThuaDat = strKq.Split('_');
                            TreeNode t = nodeParent;
                            //Tạo các Node con cho Mã Thửa đất và thêm vào TreeView
                            for (int j = arrMaThuaDat.Length - 1; j >= 0; j--)
                            {
                                if (arrMaThuaDat[j] != "")
                                {
                                    //t = AddChildNode(t, arrMaThuaDat[j], arrMaThuaDatTextNode[j]);
                                    t = AddChildNode(t, arrMaThuaDat[j], arrMaThuaDat[j]);
                                }
                            }
                            //MessageBox.Show(strKq);
                            //TreeNode t1 = new TreeNode(dtGetThuaDatLS.Rows[i]["MaThuaDat"].ToString());
                            ////t1.Name = kq;
                            ////t.Tag = "So thu" + i.ToString();
                            //nodeParent.Nodes.Add(t1);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(this, " Xem lịch sử Hồ sơ " + System.Environment.NewLine + " Hiển thị dữ liệu " + " Lỗi: " + System.Environment.NewLine
                       + strError, "DMCLand", MessageBoxButtons.OK);
            }
        }

        //Lấy các Mã thửa đất trong lịch sử biến động theo Mã Số thửa đất hiện tại
        public void LoadTreeviewByMaSoThuaDat()
        {
            try
            {
                clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
                /* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
                ThongTinThuaDatLS.Connection = strConnection;
                ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;
                ThongTinThuaDatLS.MaThuaDat = strMaThuaDat;

                string kq = "TD";
                string strKq = "";
                string strTextNode = "";
                while (kq != "")
                {
                    dtKQ.Clear();
                    //ThongTinThuaDatLS.Execute("spGetThuaDatLSNew", ref kq);    
                    ThongTinThuaDatLS.GetThongTinThuaDatByNgayBienDong(ref dtKQ);
                    if (dtKQ.Rows.Count > 0)
                    {
                        kq = dtKQ.Rows[0]["MaSoThuaDat"].ToString();
                    }
                    else kq = "";
                    if (kq != "")
                    {
                        //TreeNode t1 = new TreeNode(kq);
                        //t1.Name=kq;
                        ////t.Tag = "So thu" + i.ToString();
                        //tvCayLSThuaDat.Nodes.Add(t1);
                        //tvCayLSThuaDat.Nodes[kq].Nodes.Add(t);                                    
                        strKq += kq + "_";
                        strTextNode += dtKQ.Rows[0]["ToBanDo"].ToString() + "-" + dtKQ.Rows[0]["SoThua"].ToString() + "_";
                        //TreeNode t = AddChildNode(nodeParent, kq);
                        if (kq == ThongTinThuaDatLS.MaThuaDat) break;
                    }
                    ThongTinThuaDatLS.MaThuaDat = kq;
                }
                //Kiểm tra xem thửa đất hiện tại có tìm thấy lịch sử không
                //Nếu có thì mới tạo node và add vào treeview
                if ((strKq != "TD") && (strKq != ""))
                {
                    strTextNode = strMaThuaDat + "_" + strTextNode;
                    strKq = strMaThuaDat + "_" + strKq;

                    string[] arrMaThuaDatTextNode = strTextNode.Split('_');
                    string[] arrMaThuaDat = strKq.Split('_');
                    ArrayList arrNode = new ArrayList();
                    ArrayList arrNodeText = new ArrayList();
                    for (int j = arrMaThuaDat.Length - 2; j >= 0; j--)
                    {
                        //Kiểm tra lại các giá trị hợp lệ để chuẩn bị tạo node cho treeview
                        if (arrMaThuaDat[j] != "")
                        {
                            arrNode.Add(arrMaThuaDat[j]);
                            arrNodeText.Add(arrMaThuaDat[j]);
                        }
                    }
                    //Add node gốc vào TreeView
                    TreeNode t = new TreeNode(arrNode[0].ToString());
                    t.Name = arrNode[0].ToString();
                    tvCayLSThuaDat.Nodes.Add(t);
                    for (int k = 1; k < arrNode.Count; k++)
                    {
                        t = AddChildNode(t, arrNode[k].ToString(), arrNode[k].ToString());
                    }
                }
                else
                {
                    MessageBox.Show("Không tìm thấy lịch sử thửa đất:" + strMaThuaDat);
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(this, " Xem lịch sử Hồ sơ " + System.Environment.NewLine + " Hiển thị dữ liệu " + " Lỗi: " + System.Environment.NewLine
                       + strError, "DMCLand", MessageBoxButtons.OK);
            }
        }
        //--------------------------------------------------------------------       
        //Lấy các Mã thửa đất trong lịch sử biến động theo Mã Số thửa đất hiện tại
        //Phương thức này đảm bảo lấy đầy đủ các Mã thửa đất không bỏ sót trường hợp ghép thửa
        public void LoadTreeviewByMaSoThuaDat_New()
        {
            try
            {
                //Kiểm tra xem đã có thông tin mã thửa đất chưa
                //Nếu chưa thì không làm gì cả
                if (strMaThuaDat == "")
                {
                    strError = "Chưa chọn thửa đất";
                    MessageBox.Show(this, " Xem lịch sử Hồ sơ " + System.Environment.NewLine + " Hiển thị dữ liệu " + " Lỗi: " + System.Environment.NewLine
                           + strError, "DMCLand", MessageBoxButtons.OK);
                    //MessageBox.Show("Chưa chọn thửa đất");
                    return;
                }
                clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
                /* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
                ThongTinThuaDatLS.Connection = strConnection;
                ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;
                ThongTinThuaDatLS.MaThuaDat = strMaThuaDat;

                //Tạo đối tượng thông tin thửa đất để lưu và tag Node
                clsThongTinThuaDat ThuaDatGoc = new clsThongTinThuaDat();
                ThuaDatGoc.MaThuaDat = strMaThuaDat;
                ThuaDatGoc.ToBanDo = strToBanDo;
                ThuaDatGoc.SoThua = strSoThua;
                ThuaDatGoc.NgayBienDong = strNgayBienDong;

                TreeNode NodeGoc = new TreeNode();
                NodeGoc.Name = strMaThuaDat;
                NodeGoc.Text = "Thửa đất hiện tại:(Tờ bản đồ:" + strToBanDo + ", Số thửa:" + strSoThua + ")";
                NodeGoc.Tag = ThuaDatGoc;
                NodeGoc.ToolTipText = "Tờ bản đồ:" + strToBanDo + ", Số thửa:" + strSoThua + ", Mã số thửa đất:" + strMaThuaDat;
                tvCayLSThuaDat.Nodes.Add(NodeGoc);
                ArrayList arrKQ = new ArrayList();
                dtKQ.Clear();
                ThongTinThuaDatLS.GetThongTinThuaDatByNgayBienDong_New(ref dtKQ);
                while ((dtKQ != null) & (dtKQ.Rows.Count > 0))
                {
                    if (dtKQ.Rows.Count > 0)
                    {
                        dtKQ = GetDeQuyThuaDat(dtKQ, ref arrKQ);
                        dtKQ.Clear();
                    }
                }
                //Duyệt trong mảng đối tượng tìm được để tạo node và thêm vào Treeview   
                for (int i = 0; i < arrKQ.Count; i++)
                {
                    if (arrKQ[i] != null)
                    {
                        clsThongTinThuaDat ThuaDat = (clsThongTinThuaDat)arrKQ[i];
                        CallRecursive(tvCayLSThuaDat, ThuaDat);
                    }
                }
                tvCayLSThuaDat.SelectedNode = NodeGoc;
                //Load thông tin hồ sơ của thửa đất gốc lần đấu tiên khi Load TreeView
                LoadThongTinHoSoLichSuByMaSoThuaDat_NodeGoc(ThuaDatGoc.MaThuaDat, ThuaDatGoc.ToBanDo, ThuaDatGoc.SoThua);
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(this, " Xem lịch sử Hồ sơ " + System.Environment.NewLine + " Hiển thị dữ liệu " + " Lỗi: " + System.Environment.NewLine
                       + strError, "DMCLand", MessageBoxButtons.OK);
            }
        }
        //Tìm node thỏa mãn điều kiện trong treeview
        private void PrintRecursive(TreeNode treeNode, clsThongTinThuaDat ThuaDat)
        {
            if (treeNode.Name.Contains(ThuaDat.MaThuaDatCha))
            {
                //treeNode.BackColor = Color.Blue;
                TreeNode t = new TreeNode();
                t.Text = ThuaDat.NgayBienDong;
                t.Name = ThuaDat.MaThuaDat;
                t.Tag = ThuaDat;
                t.ToolTipText = "Tờ bản đồ:" + ThuaDat.ToBanDo + ", Số thửa:" + ThuaDat.SoThua + ",Mã số thửa đất:" + ThuaDat.MaThuaDat;
                treeNode.Nodes.Add(t);
                treeNode.ExpandAll();
            }
            //else
            //{
            //    treeNode.BackColor = Color.Empty;
            //}
            //tiếp tục tìm kiếm trong các node con của node hiện tại
            foreach (TreeNode tn in treeNode.Nodes)
            {
                PrintRecursive(tn, ThuaDat);
            }
        }
        private void CallRecursive(TreeView treeView, clsThongTinThuaDat ThuaDat)
        {
            // Tìm trong treeview
            TreeNodeCollection nodes = treeView.Nodes;

            foreach (TreeNode n in nodes)
            {
                PrintRecursive(n, ThuaDat);
            }
        }
        private DataTable GetDeQuyThuaDat(DataTable dtMaThua, ref ArrayList arrMaThua)
        {
            try
            {
                clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
                /* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
                ThongTinThuaDatLS.Connection = strConnection;
                ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;
                //ThongTinThuaDatLS.MaThuaDat = strMaThuaDat;               
                DataTable dtResult = dtMaThua;
                //string kq = "";
                string strKQHienTai = "";
                string kqMaThua = "TD";
                if ((dtResult == null) || (dtResult.Rows.Count <= 0)) return null;
                for (int i = 0; i < dtResult.Rows.Count; i++)
                {
                    string maSoThuDat = dtResult.Rows[i]["MaSoThuaDat"].ToString().Trim();
                    string toBanDo = dtResult.Rows[i]["ToBanDo"].ToString().Trim();
                    string soThua = dtResult.Rows[i]["SoThua"].ToString().Trim();
                    string ngayBienDong = dtResult.Rows[i]["NgayBienDong"].ToString().Trim();
                    clsThongTinThuaDat ThuaDat = new clsThongTinThuaDat(strMaThuaDat, maSoThuDat, toBanDo, soThua, ngayBienDong);
                    //arrMaThua.Add(strMaThuaDat + "_" + dtResult.Rows[i]["MaSoThuaDat"].ToString().Trim());
                    arrMaThua.Add(ThuaDat);
                }
                int index = dtResult.Rows.Count;
                for (int i = 0; i < dtResult.Rows.Count; i++)
                {
                    kqMaThua = dtResult.Rows[i]["MaSoThuaDat"].ToString().Trim();
                    //kq = kq + "_" + kqMaThua;                        
                    ThongTinThuaDatLS.MaThuaDat = kqMaThua;
                    if (strKQHienTai == kqMaThua) break;
                    strKQHienTai = kqMaThua;
                    DataTable dttg = new DataTable();
                    ThongTinThuaDatLS.GetThongTinThuaDatByNgayBienDong_New(ref dtResult);
                    dttg.Clear();
                    ThongTinThuaDatLS.GetThongTinThuaDatByNgayBienDong_New(ref dttg);
                    for (int k = 0; k < dttg.Rows.Count; k++)
                    {
                        string maSoThuDat = dttg.Rows[k]["MaSoThuaDat"].ToString().Trim();
                        string toBanDo = dttg.Rows[k]["ToBanDo"].ToString().Trim();
                        string soThua = dttg.Rows[k]["SoThua"].ToString().Trim();
                        string ngayBienDong = dttg.Rows[k]["NgayBienDong"].ToString().Trim();
                        clsThongTinThuaDat ThuaDat = new clsThongTinThuaDat(kqMaThua, maSoThuDat, toBanDo, soThua, ngayBienDong);
                        arrMaThua.Add(ThuaDat);
                        //arrMaThua.Add(kqMaThua + "_" + dttg.Rows[k]["MaSoThuaDat"].ToString().Trim());
                    }
                }
                //result = result + kq;     
                return dtResult;
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(this, " Lịch sử thửa đất" + System.Environment.NewLine + " Hiển thị dữ liệu " + " Lỗi: " + System.Environment.NewLine
                       + strError, "DMCLand", MessageBoxButtons.OK);
                return null;
            }
        }
        //Lấy thông tin về Hồ sơ tương ứng với mã thửa đất để load lên GridView
        public void LoadThongTinHoSoByMaSoThuaDat(string MaSoThuaDat)
        {
            try
            {
                clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
                /* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
                ThongTinThuaDatLS.Connection = strConnection;
                ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;
                /* Gán giá cho biến Mã thửa đất lịch sử*/
                dtGetNgayBienDongLS.Clear();
                /* Gọi phương thức hiển thị dữ liệu . Nếu nhận dữ liệu thành công thì hiển thị lên TreeView */
                if (ThongTinThuaDatLS.GetAllNgayBienDong(ref dtGetNgayBienDongLS) == "")
                {
                    /* Hiển thị dữ liệu lên TreeView */
                    if (dtGetNgayBienDongLS.Rows.Count > 0)
                    {
                        for (int i = 0; i < dtGetNgayBienDongLS.Rows.Count; i++)
                        {
                            TreeNode t1 = new TreeNode(dtGetNgayBienDongLS.Rows[i][0].ToString());
                            //t1.Name = kq;
                            //t.Tag = "So thu" + i.ToString();
                            tvCayLSThuaDat.Nodes.Add(t1);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(this, " Lịch sử thửa đất " + System.Environment.NewLine + " Hiển thị dữ liệu " + " Lỗi: " + System.Environment.NewLine
                       + strError, "DMCLand", MessageBoxButtons.OK);
            }
        }
        //Lấy thông tin về Hồ sơ tương ứng với mã thửa đất khi chọn node trong Treeview để load lên gridview
        public void LoadThongTinHoSoLichSuByMaSoThuaDat_New(string _MaSoThuaDat, string _strToBanDo, string _strSoThua)
        {
            try
            {
                clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
                /* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
                ThongTinThuaDatLS.Connection = strConnection;
                ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;
                /* Gán giá cho biến Mã thửa đất*/
                ThongTinThuaDatLS.MaThuaDat = _MaSoThuaDat;
                /* Gán giá cho biến Mã hồ sơ*/
                //ThongTinThuaDatLS.MaHoSoCapGCN = ThuaDat;
                /* Gán giá cho biến tờ bản đồ, số thửa*/
                ThongTinThuaDatLS.ToBanDo = _strToBanDo;
                ThongTinThuaDatLS.SoThua = _strSoThua;

                dtGetThongTinHoSoLS.Clear();
                /* Gọi phương thức hiển thị dữ liệu . Nếu nhận dữ liệu thành công thì hiển thị lên DataGridView */
                if (ThongTinThuaDatLS.GetThongTinHoSoLichSu(ref dtGetThongTinHoSoLS) == "")
                {
                    ///* Hiển thị dữ liệu lên DataGridView */
                    //if (dtGetThongTinHoSoLS.Rows.Count > 0)
                    //{
                    //    dgThongTinHS.DataSource = dtGetThongTinHoSoLS;
                    //    dgThongTinHS.Rows[0].Selected = true;
                    //    dgThongTinHS.DefaultCellStyle.SelectionForeColor = Color.Black;
                    //    //changeTile();
                    //}
                    /* Hiển thị dữ liệu lên DataGridView */
                    if (dtGetThongTinHoSoLS.Rows.Count > 0)
                    {
                        dgHoSoLS.DataSource = dtGetThongTinHoSoLS;
                        dgHoSoLS.Rows[0].Selected = true;
                        changeTile();
                    }
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(this, " Xem lịch sử Hồ sơ " + System.Environment.NewLine + " Hiển thị dữ liệu " + " Lỗi: " + System.Environment.NewLine
                       + strError, "DMCLand", MessageBoxButtons.OK);
            }
        }
        //Lấy thông tin về Hồ sơ tương ứng với mã thửa đất khi chọn node trong Treeview để load lên gridview 
        //trường hợp Node gốc trong Treeview
        public void LoadThongTinHoSoLichSuByMaSoThuaDat_NodeGoc(string _MaSoThuaDat, string _strToBanDo, string _strSoThua)
        {
            try
            {
                clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
                /* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
                ThongTinThuaDatLS.Connection = strConnection;
                ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;
                /* Gán giá cho biến Mã thửa đất*/
                ThongTinThuaDatLS.MaThuaDat = _MaSoThuaDat;
                /* Gán giá cho biến Mã hồ sơ*/
                //ThongTinThuaDatLS.MaHoSoCapGCN = ThuaDat;
                /* Gán giá cho biến tờ bản đồ, số thửa*/
                ThongTinThuaDatLS.ToBanDo = _strToBanDo;
                ThongTinThuaDatLS.SoThua = _strSoThua;

                //dtGetThongTinHoSoLS.Clear();
                DataTable dtResult = new DataTable();
                /* Gọi phương thức hiển thị dữ liệu . Nếu nhận dữ liệu thành công thì hiển thị lên DataGridView */
                if (ThongTinThuaDatLS.GetThongTinHoSoLichSu_NodeGoc(ref dtResult) == "")
                {
                    ///* Hiển thị dữ liệu lên DataGridView */
                    //if (dtGetThongTinHoSoLS.Rows.Count > 0)
                    //{
                    //    dgThongTinHS.DataSource = dtGetThongTinHoSoLS;
                    //    dgThongTinHS.Rows[0].Selected = true;
                    //    dgThongTinHS.DefaultCellStyle.SelectionForeColor = Color.Black;
                    //    //changeTile();
                    //}
                    /* Hiển thị dữ liệu lên DataGridView */
                    if (dtResult.Rows.Count > 0)
                    {
                        dgHoSoLS.DataSource = dtResult;
                        dgHoSoLS.Rows[0].Selected = true;
                        changeTile();
                    }
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(this, " Xem lịch sử Hồ sơ " + System.Environment.NewLine + " Hiển thị dữ liệu " + " Lỗi: " + System.Environment.NewLine
                       + strError, "DMCLand", MessageBoxButtons.OK);
            }
        }
        //Add node con vào node cha được chỉ định
        private TreeNode AddChildNode(TreeNode pParentNode, string pNodeConName)
        {
            if (pNodeConName == "")
                return null;
            TreeNode childNode = new TreeNode(pNodeConName);
            //childNode.Expand();            
            pParentNode.Nodes.Add(childNode);
            pParentNode.ExpandAll();
            return childNode;
        }
        //Add node con vào node cha được chỉ định với giá trị Text truyền vào
        private TreeNode AddChildNode(TreeNode pParentNode, string pNodeConName, string textNode)
        {
            if (pNodeConName == "")
                return null;
            TreeNode childNode = new TreeNode(pNodeConName);
            childNode.Text = textNode;
            childNode.Name = pNodeConName;
            //childNode.Expand();            
            pParentNode.Nodes.Add(childNode);
            pParentNode.ExpandAll();
            return childNode;
        }
        public void ShowData3()
        {
            try
            {
                clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
                /* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
                ThongTinThuaDatLS.Connection = strConnection;
                ThongTinThuaDatLS.MaThuaDat = strMaThuaDat;
                /* Gán giá cho biến Mã đơn vị hành chính */
                ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;
                /* Gán giá cho biến Mã thửa đất lịch sử*/
                ThongTinThuaDatLS.MaThuaDatLS = strMaThuaDatLS;
                /* Khởi tạo giá trị cho biến dtDangKyBienDong */
                dtGetThuaDatLS.Clear();
                string kq = "";
                ThongTinThuaDatLS.Execute("spGetThuaDatLSNew", ref kq);
                /* Hiển thị dữ liệu lên Grid */
                //this.ctrlGridView1.DataSource = dtGetThuaDatLS;
                if (kq != "")
                {
                    /* Thiết đặt giao diện hiển thị Grid */
                    //this.FormatGridContruction();
                    //this.textBox1.Text = kq;
                }
                else
                {
                    //this.HideAllColumns(ref grdvwDangKyBienDong);
                    //this.textBox1.Text = "Ko có";

                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(this, " Xem lịch sử Hồ sơ " + System.Environment.NewLine + " Hiển thị dữ liệu " + " Lỗi: " + System.Environment.NewLine
                       + strError, "DMCLand", MessageBoxButtons.OK);
            }
            ///* Thiết lập trạng thái chức năng */
            // this.TrangThaiChucNang(false, false);
            ///* Thiết lập trạng thái cập nhật */
            // this.TrangThaiCapNhat(false);
        }
        private void tvCayLSThuaDat_AfterSelect(object sender, TreeViewEventArgs e)
        {
            RTNoiDungBienDong.Text = "";
            ////Kiểm tra xem nếu là Node gốc thì mời thêm node con
            if (e.Node.Parent == null)
            {
                //if (e.Node.Nodes.Count <= 0)
                //{
                //    //e.Node.Nodes.Clear();
                //    //LoadMaThuaDatByNgayBienDong(e.Node, e.Node.Text.Trim());
                //}               
                isNodeGoc = true;
                //Viết thêm phương thức hiển thị thông tin biến động node gốc 
                //return;
                clsThongTinThuaDat ThuaDat = (clsThongTinThuaDat)e.Node.Tag;
                LoadThongTinHoSoLichSuByMaSoThuaDat_NodeGoc(ThuaDat.MaThuaDat, ThuaDat.ToBanDo, ThuaDat.SoThua);
            }
            else
            {
                isNodeGoc = false;
            }
            if (e.Node.Name.Trim() != "")
            {
                //strMaThuaDat = e.Node.Name.Trim();
                //LoadThongTinHoSoLichSuByMaSoThuaDat(strMaThuaDat);
                clsThongTinThuaDat ThuaDat = (clsThongTinThuaDat)e.Node.Tag;
                LoadThongTinHoSoLichSuByMaSoThuaDat_New(ThuaDat.MaThuaDat, ThuaDat.ToBanDo, ThuaDat.SoThua);
            }

            //Tìm node con của node hiện tại trong treeview            
            FindChildNodes(e.Node, ref arrMaThuaDatLienQuan);
            clsThongTinThuaDat ThuaDatHienTai = (clsThongTinThuaDat)e.Node.Tag;
            strMaThuaDatHienTai = ThuaDatHienTai.MaThuaDat;
        }
        //Tìm node con của node hiện tại trong Treeview 
        private void FindChildNodes(TreeNode treeNode, ref ArrayList arrThuaDat)
        {
            // Tìm trong treeview
            TreeNodeCollection nodes = treeNode.Nodes;
            arrThuaDat.Clear();
            foreach (TreeNode n in nodes)
            {
                clsThongTinThuaDat thuaDat = (clsThongTinThuaDat)n.Tag;
                arrThuaDat.Add(thuaDat.MaThuaDat);
            }
        }
        private void cmdExit_Click(object sender, EventArgs e)
        {
        }
        private void dgHoSoLS_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            //string _MaSoThuaDat = "";
            //if (dgHoSoLS.Rows[e.RowIndex].Cells["MaSoThuaDat"].Value != null)
            //{
            //    _MaSoThuaDat = dgHoSoLS.Rows[e.RowIndex].Cells["MaSoThuaDat"].Value.ToString().Trim();
            //    if (_MaSoThuaDat!="")
            //    {
            //        ctrHinhDangThua1.Connection = strConnection;
            //        ctrHinhDangThua1.MaThuaDat = _MaSoThuaDat;
            //        ctrHinhDangThua1.MaDonViHanhChinh = strMaDonViHanhChinh;
            //        ctrHinhDangThua1.TenBangBanDo = _MaSoThuaDat;
            //        ctrHinhDangThua1.ctrHinhDangThua_Load();
            //    }
            //}

            //ctrHinhDangThua1
        }
        //Load thông tin tổng hợp nội dung biến động của thửa đất để hiển thị
        private void LoadNoiDungLichSuDeHienThi(int rowIndex)
        {
            RTNoiDungBienDong.Text = "";
            string strMaHS = "";
            if (dgHoSoLS.Rows[rowIndex].Cells["MaHoSoCapGCN"].Value != null)
                strMaHS = dgHoSoLS.Rows[rowIndex].Cells["MaHoSoCapGCN"].Value.ToString().Trim();

            string strThuaDat = "";
            strThuaDat = dgHoSoLS.Rows[rowIndex].Cells["MaSoThuaDat"].Value.ToString().Trim();
            prjLichSuHoSoBienDong.clsLichSuHSBienDong cls = new prjLichSuHoSoBienDong.clsLichSuHSBienDong();
            cls.Connection = strConnection;
            cls.MaHoSoCapGCN = strMaHS;
            cls.MaThuaDat = strThuaDat;
            cls.MaDonViHanhChinh = strMaDonViHanhChinh;
            //cls.MaBienDong = dgHoSoLS.Rows[rowIndex].Cells["MaDangKyBienDong"].Value.ToString().Trim();
            cls.MaBienDong = dgHoSoLS.Rows[rowIndex].Cells["MaDangKyBienDong"].Value.ToString().Trim();
            //DataTable dt = new DataTable();
            //cls.selThongTinHoSoBienDong(dt);
            //string strNoiDungBienDong = "\n";
            //if (dt.Rows.Count > 0)
            //{
            //    strNoiDungBienDong = strNoiDungBienDong + "Thời điểm biến động: " + dt.Rows[0]["ThoiDiemDangKy"] + "\n";
            //    strNoiDungBienDong = strNoiDungBienDong + "Nội dung biến động: " + dt.Rows[0]["NoidungSoDiaChinh"] + "\n";
            //    strNoiDungBienDong = strNoiDungBienDong + "Tờ bản đồ: " + dt.Rows[0]["ToBanDo"] + "\n";
            //    strNoiDungBienDong = strNoiDungBienDong + "Số thửa" + dt.Rows[0]["SoThua"] + "\n";
            //    strNoiDungBienDong = strNoiDungBienDong + "Địa chỉ : " + dt.Rows[0]["DiaChi"] + "\n";
            //    strNoiDungBienDong = strNoiDungBienDong + "Diện tích: " + dt.Rows[0]["DienTich"] + "\n";
            //    strNoiDungBienDong = strNoiDungBienDong + "Họ tên: " + dt.Rows[0]["HoTen"] + "\n";
            //}
            //----------------Lấy nội dung từ datagridview------------            
            string strNoiDungBienDong = "";
            strNoiDungBienDong = strNoiDungBienDong + "Thời điểm biến động: " + dgHoSoLS["NgayBienDong", rowIndex].Value.ToString().Trim() + "\n";
            strNoiDungBienDong = strNoiDungBienDong + "Họ tên: " + dgHoSoLS["HoTenTimKiem", rowIndex].Value.ToString().Trim() + "\n";
            strNoiDungBienDong = strNoiDungBienDong + "Tờ bản đồ: " + dgHoSoLS["ToBanDo", rowIndex].Value.ToString().Trim() + "\t\t";
            strNoiDungBienDong = strNoiDungBienDong + "Số thửa:" + dgHoSoLS["SoThua", rowIndex].Value.ToString().Trim() + "\t\t";
            strNoiDungBienDong = strNoiDungBienDong + "Diện tích: " + dgHoSoLS["DienTich", rowIndex].Value.ToString().Trim() + "\n";
            strNoiDungBienDong = strNoiDungBienDong + "Địa chỉ : " + dgHoSoLS["DiaChi", rowIndex].Value.ToString().Trim() + "\n";
            strNoiDungBienDong = strNoiDungBienDong + "Nội dung biến động: " + dgHoSoLS["Noidung", rowIndex].Value.ToString().Trim() + "\n";
            RTNoiDungBienDong.Text = strNoiDungBienDong;
            //byte[] ob = null;
            //if (!Information.IsDBNull(dt.Rows[0]["HoSoKiThuatThamDinh"]))
            //{
            //    ob = dt.Rows[0]["HoSoKiThuatThamDinh"];
            //    Image bm = default(Image);
            //    bm = Image.FromStream(new System.IO.MemoryStream(ob));
            //    dynamic myBitmap = new Bitmap(bm);
            //    Clipboard.SetDataObject(myBitmap);
            //    dynamic format = DataFormats.GetFormat(DataFormats.Bitmap);
            //    RTNoiDungBienDong.Paste(format);
            //}
            //NhatKyNguoiDung("Hiển thị báo cáo", strNoiDungBienDong);
        }
        //Load thông tin tổng hợp nội dung biến động của thửa đất để hiển thị       
        public void changeTile()
        {
            //for (int i = 0; i < dgHoSoLS.RowCount;i++ )
            //{
            //    dgHoSoLS.Columns[i].Visible = false;
            //}
            dgHoSoLS.Columns["MaHoSoCapGCN"].Visible = false;
            dgHoSoLS.Columns["MaDonViHanhChinh"].Visible = false;
            dgHoSoLS.Columns["MaDangKyBienDong"].Visible = false;
            dgHoSoLS.Columns["MaSoThuaDat"].Visible = false;
            dgHoSoLS.Columns["Status"].Visible = false;
            dgHoSoLS.Columns["SoTotrinh"].Visible = false;
            dgHoSoLS.Columns["NgayLapTotrinh"].Visible = false;
            dgHoSoLS.Columns["NgayQuyetDinhCapGCN"].Visible = false;
            dgHoSoLS.Columns["CanhBaoTranhChapkhieuKien"].Visible = false;
            dgHoSoLS.Columns["STT"].Visible = false;
            dgHoSoLS.Columns["MaDangKyBienDong"].Visible = false;
            dgHoSoLS.Columns["HoTenChuChuyenNhuongTimKiem"].Visible = false;

            dgHoSoLS.Columns["NgayBienDong"].Visible = true;
            dgHoSoLS.Columns["NgayBienDong"].HeaderText = "Thời điểm biến động";
            dgHoSoLS.Columns["NgayBienDong"].Width = 120;

            dgHoSoLS.Columns["ToBanDo"].Visible = true;
            dgHoSoLS.Columns["ToBanDo"].HeaderText = "Tờ bản đồ";
            dgHoSoLS.Columns["ToBanDo"].Width = 90;

            dgHoSoLS.Columns["SoThua"].Visible = true;
            dgHoSoLS.Columns["SoThua"].HeaderText = "Số thửa";
            dgHoSoLS.Columns["SoThua"].Width = 80;

            dgHoSoLS.Columns["DienTich"].Visible = true;
            dgHoSoLS.Columns["DienTich"].HeaderText = "Diện tích";
            dgHoSoLS.Columns["DienTich"].Width = 80;

            dgHoSoLS.Columns["NoiDung"].Visible = true;
            dgHoSoLS.Columns["NoiDung"].HeaderText = "Nội dung";
            dgHoSoLS.Columns["NoiDung"].Width = 300;

            dgHoSoLS.Columns["DiaChi"].Visible = true;
            dgHoSoLS.Columns["DiaChi"].HeaderText = "Địa chỉ";
            dgHoSoLS.Columns["DiaChi"].Width = 200;

            dgHoSoLS.Columns["HoTenTimKiem"].Visible = true;
            dgHoSoLS.Columns["HoTenTimKiem"].HeaderText = "Họ Tên chủ";
            dgHoSoLS.Columns["HoTenTimKiem"].Width = 150;

            dgHoSoLS.Columns["MaLoaiBienDong"].Visible = true;
            dgHoSoLS.Columns["MaLoaiBienDong"].HeaderText = "Loại biến động";
            dgHoSoLS.Columns["MaLoaiBienDong"].Width = 100;

            dgHoSoLS.BorderStyle = BorderStyle.Fixed3D;
            dgHoSoLS.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dgHoSoLS.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
        }
        private void dgHoSoLS_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            //MessageBox.Show(e.RowIndex.ToString());
            if (e.RowIndex < 0) return;
            LoadNoiDungLichSuDeHienThi(e.RowIndex);
        }

        private void dgHoSoLS_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex < 0) return;
            LoadNoiDungLichSuDeHienThi(e.RowIndex);
        }

        private void dgHoSoLS_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            //for (int i = 0; i < arrMaThuaDatLienQuan.Count;i++ )
            //{
            //    MessageBox.Show(arrMaThuaDatLienQuan[i].ToString());
            //}
            string _MaSoThuaDat = "";
            clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
            /* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
            ThongTinThuaDatLS.Connection = strConnection;
            ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;

            //Đóng các bản đồ hiện tại
            if (MapInfo.Engine.Session.Current.Catalog.GetTable("temp") != null)
            {
                MapInfo.Engine.Session.Current.Catalog.CloseTable("temp");
            }
            if (MapInfo.Engine.Session.Current.Catalog.GetTable("temp1") != null)
            {
                MapInfo.Engine.Session.Current.Catalog.CloseTable("temp1");
            }


            if (dgHoSoLS.Rows[e.RowIndex].Cells["MaSoThuaDat"].Value != null)
            {
                _MaSoThuaDat = dgHoSoLS.Rows[e.RowIndex].Cells["MaSoThuaDat"].Value.ToString().Trim();
                if (_MaSoThuaDat != "")
                {
                    string strTienToTenBang = "";
                    GetTienToTenBang(ref strTienToTenBang);
                    if (strTienToTenBang == "") return;
                    if (isNodeGoc)
                    {
                        strTenBangBanDo = strTienToTenBang + "TBLDLIEUKGIANTHUADAT";
                    }
                    else
                    {
                        strTenBangBanDo = strTienToTenBang + "TBLDLIEUKGIANTHUADATLICHSU";
                    }
                    //strMaThuaDat = "TD00004302";
                    HienThiBanDo(mapControl1, "DangThuaGoc", strMaThuaDatHienTai);

                    //string[] strArrayMaThuaDat = { "TD00000048", "TD00000064" };
                    strTenBangBanDo = strTienToTenBang + "TBLDLIEUKGIANTHUADATLICHSU";
                    HienThiBanDo(mapControl2, "DangThua", arrMaThuaDatLienQuan);
                }
            }

            //---------------------------------------Nháp----------------------------------
            //string _MaSoThuaDat = "";
            //clsLichSuHoSoThuaDat ThongTinThuaDatLS = new clsLichSuHoSoThuaDat();
            ///* Gán giá trị cho thuộc tính cần cho điều kiện truy vấn */
            //ThongTinThuaDatLS.Connection = strConnection;
            //ThongTinThuaDatLS.MaDonViHanhChinh = strMaDonViHanhChinh;

            //if (dgHoSoLS.Rows[e.RowIndex].Cells["MaSoThuaDat"].Value != null)
            //{
            //    _MaSoThuaDat = dgHoSoLS.Rows[e.RowIndex].Cells["MaSoThuaDat"].Value.ToString().Trim();
            //    if (_MaSoThuaDat != "")
            //    {
            //        //ctrHinhDangThua1.Connection = strConnection;
            //        //ctrHinhDangThua1.MaThuaDat = _MaSoThuaDat;
            //        //ctrHinhDangThua1.MaDonViHanhChinh = strMaDonViHanhChinh;
            //        //string strTienToTenBang = "";
            //        //GetTienToTenBang(ref strTienToTenBang);
            //        //if (strTienToTenBang == "") return;
            //        //ctrHinhDangThua1.TenBangBanDo = strTienToTenBang + "TBLDLIEUKGIANTHUADATLICHSU";
            //        //ctrHinhDangThua1.ctrHinhDangThua_Load();
            //        //-------------------------------------------

            //        string strTienToTenBang = "";
            //        GetTienToTenBang(ref strTienToTenBang);
            //        if (strTienToTenBang == "") return;
            //        strTenBangBanDo = strTienToTenBang + "TBLDLIEUKGIANTHUADAT";
            //        strMaThuaDat = "TD00004302";
            //        HienThiBanDo(mapControl1, "DangThuaGoc");

            //        string[] strArrayMaThuaDat = { "TD00000048", "TD00000064" };
            //        strTenBangBanDo = strTienToTenBang + "TBLDLIEUKGIANTHUADATLICHSU";
            //        HienThiBanDo(mapControl2, "DangThua", strArrayMaThuaDat); 
            //    }
            //}
            //---------------------------------------hết Nháp----------------------------------
        }
        //public void HienThiBanDo(MapControl pMap, string CurentLayerName, params string[] arrMaThuaDat)
        public void HienThiBanDo(MapControl pMap, string CurentLayerName, ArrayList arrMaThuaDat)
        {
            try
            {
                if (arrMaThuaDat.Count < 1) return;

                clsMainSoanHoSo cls = new clsMainSoanHoSo();
                FeatureLayer[] lyrs = new FeatureLayer[1];
                string str;
                string strConnectionstring = "";
                str = "";
                strConnectionstring = "DRIVER=SQL Server;" + strConnection + ";DLG=SQL_DRIVER_NOPROMPT";
                //str = "Select * from " + strTenBangBanDo + " where  MaSoThuaDat = '" + strMaThuaDat + "' and MaDonViHanhChinh =" + strMaDonViHanhChinh;
                //str = "Select * from " + strTenBangBanDo + " where  MaSoThuaDat in('TD00000048','TD00000064') and MaDonViHanhChinh =" + strMaDonViHanhChinh;

                //Chuẩn bị chuỗi mã thửa đất để truyền vào SQL               
                string strArrayMaThuaDat = "";
                for (int i = 0; i < arrMaThuaDat.Count; i++)
                {
                    strArrayMaThuaDat += "'" + arrMaThuaDat[i] + "',";
                }
                //Xóa dấy phẩy ở cuối cùng chuỗi
                strArrayMaThuaDat = strArrayMaThuaDat.Remove(strArrayMaThuaDat.LastIndexOf(","));

                str = "Select * from " + strTenBangBanDo + " where  MaSoThuaDat in(" + strArrayMaThuaDat + ") and LoaiBienDong<>'NANCHINH' and MaDonViHanhChinh =" + strMaDonViHanhChinh;
                // strConnectionstring = "DRIVER={SQL Server};SERVER=dmc-svr\\map;UID=sa;PWD=1;DATABASE=georgetown;DLG=SQL_DRIVER_NOPROMPT";
                if (MapInfo.Engine.Session.Current.Catalog.GetTable(CurentLayerName) != null)
                {
                    MapInfo.Engine.Session.Current.Catalog.CloseTable(CurentLayerName);
                }
                Table tab = null;
                tab = cls.GetNewLayer(CurentLayerName, strConnectionstring, str);
                //FeatureLayer fly = new FeatureLayer(tab);
                //mapControl1.Map.Layers.Add(fly);
                //mapControl1.Map.SetView(fly);
                IResultSetFeatureCollection irfc = Session.Current.Catalog.Search(tab, MapInfo.Data.SearchInfoFactory.SearchAll());
                if (irfc == null)
                {
                    return;
                }
                if (irfc.Count == 0)
                {
                    return;
                }
                //lay tat ca cac doi tuong tim duoc dua len tren mot layer tmp cua ban do
                Table dt = null;
                if (MapInfo.Engine.Session.Current.Catalog.GetTable("temp") != null)
                {
                    MapInfo.Engine.Session.Current.Catalog.CloseTable("temp");
                }
                dt = cls.CreateDataTable(mapControl1.Map, CurentLayerName, "temp", tab);

                CompositeStyle cs = new CompositeStyle();
                foreach (Feature f in irfc)
                {
                    Feature fnew = new Feature(f.Geometry, cs);
                    dt.InsertFeature(fnew);
                }
                FeatureLayer fl = new FeatureLayer(dt);
                mapControl2.Map.Layers.Add(fl);
                mapControl2.Map.SetView(fl);
                mapControl2.Map.Zoom = new MapInfo.Geometry.Distance(50, DistanceUnit.Meter);
            }
            catch (FeatureException ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        public void HienThiBanDo(MapControl pMap, string CurentLayerName, string _strMaThuaDat)
        {
            try
            {
                clsMainSoanHoSo cls = new clsMainSoanHoSo();
                FeatureLayer[] lyrs = new FeatureLayer[1];
                string str;
                string strConnectionstring = "";
                str = "";
                strConnectionstring = "DRIVER=SQL Server;" + strConnection + ";DLG=SQL_DRIVER_NOPROMPT";
                //Kiểm tra xem Node hiện tại trong Treeview có phải Node gốc ko để có cách xứ lý khác nhau
                str = "Select * from " + strTenBangBanDo + " where  MaSoThuaDat = '" + _strMaThuaDat + "' and MaDonViHanhChinh =" + strMaDonViHanhChinh;
                string strDieuKienNanChinh = " and LoaiBienDong<>'NANCHINH' ";
                if (!isNodeGoc)
                {
                    str += strDieuKienNanChinh;
                }

                //str = "Select * from " + strTenBangBanDo + " where  MaSoThuaDat in('TD00000048','TD00000064') and MaDonViHanhChinh =" + strMaDonViHanhChinh;

                // strConnectionstring = "DRIVER={SQL Server};SERVER=dmc-svr\\map;UID=sa;PWD=1;DATABASE=georgetown;DLG=SQL_DRIVER_NOPROMPT";
                if (MapInfo.Engine.Session.Current.Catalog.GetTable(CurentLayerName) != null)
                {
                    MapInfo.Engine.Session.Current.Catalog.CloseTable(CurentLayerName);
                }
                Table tab = null;
                tab = cls.GetNewLayer(CurentLayerName, strConnectionstring, str);
                //FeatureLayer fly = new FeatureLayer(tab);
                //mapControl1.Map.Layers.Add(fly);
                //mapControl1.Map.SetView(fly);
                IResultSetFeatureCollection irfc = Session.Current.Catalog.Search(tab, MapInfo.Data.SearchInfoFactory.SearchAll());
                if (irfc == null)
                {
                    return;
                }
                if (irfc.Count == 0)
                {
                    return;
                }
                //lay tat ca cac doi tuong tim duoc dua len tren mot layer tmp cua ban do
                Table dt = null;
                if (MapInfo.Engine.Session.Current.Catalog.GetTable("temp1") != null)
                {
                    MapInfo.Engine.Session.Current.Catalog.CloseTable("temp1");
                }
                dt = cls.CreateDataTable(mapControl1.Map, CurentLayerName, "temp1", tab);

                CompositeStyle cs = new CompositeStyle();
                foreach (Feature f in irfc)
                {
                    Feature fnew = new Feature(f.Geometry, cs);
                    dt.InsertFeature(fnew);

                }
                FeatureLayer fl = new FeatureLayer(dt);
                mapControl1.Map.Layers.Add(fl);
                mapControl1.Map.SetView(fl);
                mapControl1.Map.Zoom = new MapInfo.Geometry.Distance(50, DistanceUnit.Meter);
            }
            catch (FeatureException ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
    }
}

